

#pragma once

#include "../DefinesCore.hpp"
#include <chrono>
#include <string>
#include<ctime>

CYBERTRON_BEGIN

class UtilTime
{
public:
	// thread-safe local time
	CybertronCoreAPI static void getLocalTime(struct tm& timeinfo);

	CybertronCoreAPI static std::string getLocalTimeStringForFile();
	CybertronCoreAPI static std::string getLocalTimeStringForPrint();
	CybertronCoreAPI static std::string getLocalTimeStringForPrint24HourFormat();

	CybertronCoreAPI static unsigned int millisecondsCurrent();
	CybertronCoreAPI static void millisecondsUpdate();
	CybertronCoreAPI static void millisecondsUpdate(unsigned int ms);
	CybertronCoreAPI static unsigned long getTimeStampSeconds();
};

CYBERTRON_END
